package com.alameda.filestorage.config;

import org.dromara.x.file.storage.spring.SpringFileStorageProperties;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

import java.util.List;

/**
 * 本地文件存储配置
 *
 * @author Lv
 * @date 2024/11/23
 */
@Configuration
public class SpringFileStoragePropertiesExtConfig extends SpringFileStorageProperties {

    /**
     * 设置本地文件存储自定义配置
     *
     * @param localPlus 存储自定义配置信息集合
     * @return
     */
    @Override
    public SpringFileStorageProperties setLocalPlus(List<? extends SpringLocalPlusConfig> localPlus) {
        // 路径修改为自定义路径
        localPlus.forEach(this::dealFileStorageProperties);
        return super.setLocalPlus(localPlus);
    }

    /**
     * 本地文件存储地址
     */
    @Value("${machine.file.domain}")
    private String fileDomain;

    /**
     * 本地文件存储基本路径
     */
    @Value("${machine.file.base-path}")
    private String basePath;

    /**
     * 本地文件存储路径
     */
    @Value("${machine.file.storage-path}")
    private String storagePath;

    /**
     * 处理文件本地存储设置
     *
     * @param springLocalPlusConfig 本地存储配置信息
     */
    private void dealFileStorageProperties(SpringLocalPlusConfig springLocalPlusConfig) {
        springLocalPlusConfig.setDomain(fileDomain);
        springLocalPlusConfig.setBasePath(basePath);
        springLocalPlusConfig.setStoragePath(storagePath);
    }
}
